/**
 */
package org.mro.grib.model.files.secondEdition.products;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Product Definition Template41000</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getParameterCategory <em>Parameter Category</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getParameterNumber <em>Parameter Number</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getTypeOfGeneratingProcess <em>Type Of Generating Process</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getBackgroundGeneratingProcess <em>Background Generating Process</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getAnalysisOrForecastGeneratingProcess <em>Analysis Or Forecast Generating Process</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getHoursOfObservationalDataCutOff <em>Hours Of Observational Data Cut Off</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getMinutesOfObservationalDataCutOff <em>Minutes Of Observational Data Cut Off</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getIndicatorOfUnitOfTimeRange <em>Indicator Of Unit Of Time Range</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getForecastTime <em>Forecast Time</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41000()
 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Cross-section of analysis and forecast at a point in time' note_1_en='This template is simply experimental, was not validated at the time of publication and should be used only\r\nfor bilateral previously agreed tests.' note_2_en='Hours greater than 65534 will be coded as 65534.'"
 * @generated
 */
public interface ProductDefinitionTemplate41000 extends IProductDefinition {
	/**
	 * Returns the value of the '<em><b>Parameter Category</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Parameter Category</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Parameter Category</em>' attribute.
	 * @see #setParameterCategory(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41000_ParameterCategory()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Parameter category' description_en='Parameter category (see Code table 4.1)'"
	 * @generated
	 */
	byte getParameterCategory();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getParameterCategory <em>Parameter Category</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Parameter Category</em>' attribute.
	 * @see #getParameterCategory()
	 * @generated
	 */
	void setParameterCategory(byte value);

	/**
	 * Returns the value of the '<em><b>Parameter Number</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Parameter Number</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Parameter Number</em>' attribute.
	 * @see #setParameterNumber(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41000_ParameterNumber()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Parameter number' description_en='Parameter number (see Code table 4.2)'"
	 * @generated
	 */
	byte getParameterNumber();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getParameterNumber <em>Parameter Number</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Parameter Number</em>' attribute.
	 * @see #getParameterNumber()
	 * @generated
	 */
	void setParameterNumber(byte value);

	/**
	 * Returns the value of the '<em><b>Type Of Generating Process</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Type Of Generating Process</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Type Of Generating Process</em>' attribute.
	 * @see #setTypeOfGeneratingProcess(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41000_TypeOfGeneratingProcess()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Type of generating process' description_en='Type of generating process (see Code table 4.3)'"
	 * @generated
	 */
	byte getTypeOfGeneratingProcess();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getTypeOfGeneratingProcess <em>Type Of Generating Process</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Type Of Generating Process</em>' attribute.
	 * @see #getTypeOfGeneratingProcess()
	 * @generated
	 */
	void setTypeOfGeneratingProcess(byte value);

	/**
	 * Returns the value of the '<em><b>Background Generating Process</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Background Generating Process</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Background Generating Process</em>' attribute.
	 * @see #setBackgroundGeneratingProcess(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41000_BackgroundGeneratingProcess()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Background generating process identifier' description_en='Background generating process identifier (defined by originating centre)'"
	 * @generated
	 */
	byte getBackgroundGeneratingProcess();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getBackgroundGeneratingProcess <em>Background Generating Process</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Background Generating Process</em>' attribute.
	 * @see #getBackgroundGeneratingProcess()
	 * @generated
	 */
	void setBackgroundGeneratingProcess(byte value);

	/**
	 * Returns the value of the '<em><b>Analysis Or Forecast Generating Process</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Analysis Or Forecast Generating Process</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Analysis Or Forecast Generating Process</em>' attribute.
	 * @see #setAnalysisOrForecastGeneratingProcess(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41000_AnalysisOrForecastGeneratingProcess()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Analysis or forecast generating process identifier' description_en='Analysis or forecast generating process identifier (defined by originating centre)'"
	 * @generated
	 */
	byte getAnalysisOrForecastGeneratingProcess();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getAnalysisOrForecastGeneratingProcess <em>Analysis Or Forecast Generating Process</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Analysis Or Forecast Generating Process</em>' attribute.
	 * @see #getAnalysisOrForecastGeneratingProcess()
	 * @generated
	 */
	void setAnalysisOrForecastGeneratingProcess(byte value);

	/**
	 * Returns the value of the '<em><b>Hours Of Observational Data Cut Off</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Hours Of Observational Data Cut Off</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Hours Of Observational Data Cut Off</em>' attribute.
	 * @see #setHoursOfObservationalDataCutOff(short)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41000_HoursOfObservationalDataCutOff()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Hours of observational data cut-off after reference time' description_en='Hours of observational data cut-off after reference time (see Note)'"
	 * @generated
	 */
	short getHoursOfObservationalDataCutOff();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getHoursOfObservationalDataCutOff <em>Hours Of Observational Data Cut Off</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Hours Of Observational Data Cut Off</em>' attribute.
	 * @see #getHoursOfObservationalDataCutOff()
	 * @generated
	 */
	void setHoursOfObservationalDataCutOff(short value);

	/**
	 * Returns the value of the '<em><b>Minutes Of Observational Data Cut Off</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Minutes Of Observational Data Cut Off</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Minutes Of Observational Data Cut Off</em>' attribute.
	 * @see #setMinutesOfObservationalDataCutOff(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41000_MinutesOfObservationalDataCutOff()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Minutes of observational data cut-off after reference time' description_en='Minutes of observational data cut-off after reference time'"
	 * @generated
	 */
	byte getMinutesOfObservationalDataCutOff();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getMinutesOfObservationalDataCutOff <em>Minutes Of Observational Data Cut Off</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Minutes Of Observational Data Cut Off</em>' attribute.
	 * @see #getMinutesOfObservationalDataCutOff()
	 * @generated
	 */
	void setMinutesOfObservationalDataCutOff(byte value);

	/**
	 * Returns the value of the '<em><b>Indicator Of Unit Of Time Range</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Indicator Of Unit Of Time Range</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Indicator Of Unit Of Time Range</em>' attribute.
	 * @see #setIndicatorOfUnitOfTimeRange(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41000_IndicatorOfUnitOfTimeRange()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Indicator of unit of time range' description_en='Indicator of unit of time range (see Code table 4.4)'"
	 * @generated
	 */
	byte getIndicatorOfUnitOfTimeRange();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getIndicatorOfUnitOfTimeRange <em>Indicator Of Unit Of Time Range</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Indicator Of Unit Of Time Range</em>' attribute.
	 * @see #getIndicatorOfUnitOfTimeRange()
	 * @generated
	 */
	void setIndicatorOfUnitOfTimeRange(byte value);

	/**
	 * Returns the value of the '<em><b>Forecast Time</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Forecast Time</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Forecast Time</em>' attribute.
	 * @see #setForecastTime(int)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41000_ForecastTime()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Forecast time' description_en='Forecast time in units defined by octet 18'"
	 * @generated
	 */
	int getForecastTime();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41000#getForecastTime <em>Forecast Time</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Forecast Time</em>' attribute.
	 * @see #getForecastTime()
	 * @generated
	 */
	void setForecastTime(int value);

} // ProductDefinitionTemplate41000
